package com.lxl.action;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;

import com.lxl.model.Post;
import com.lxl.service.TiebaService;

/**
 * 贴吧_显示贴吧Action
 * 
 * @author 刘星鹭
 * @Email liuxinglumail@163.com
 * @version 创建时间： 2015年5月11日 下午9:43:21
 */

@Controller
@Transactional
public class ShowTiebaAction {
    @Resource
    TiebaService tiebaService;// 注入贴吧Service
    private List<Post> postList;// 帖子列表
    private String tiebaName;// 贴吧名

    /**
     * 调用本Action时执行本方法
     * 
     * @return 用于Action判断跳转方向的字符串
     */
    public String execute()  throws UnsupportedEncodingException{        
        postList=new ArrayList<Post>();
        List<Post> sqlPostList = tiebaService.listPosts(tiebaName);
        for(int i=0;i<sqlPostList.size();i++){
            int charsCount=0;
            int bytesCount=0;
            for(int j=0;j<sqlPostList.get(i).getPostContent().length();j++){
                String tempChar=""+sqlPostList.get(i).getPostContent().charAt(j);
                bytesCount+=tempChar.getBytes("GBK").length;
                charsCount++;                
                if(bytesCount>=70){
                    bytesCount-=tempChar.getBytes("GBK").length;
                    charsCount--; 
                }
            }
            postList.add(new Post(sqlPostList.get(i).getPostTitle(), sqlPostList.get(i).getPostContent(), sqlPostList.get(i).getPostUser(), sqlPostList.get(i).getPostTieba()));
            if(postList.get(i).getPostContent().getBytes("GBK").length>=70){
                postList.get(i).setPostContent(postList.get(i).getPostContent().substring(0, charsCount)+"...");
            }
        }
        return "success";
    }

    /**
     * 获得帖子列表
     * 
     * @return 帖子列表
     */
    public List<Post> getPostList() {
        return postList;
    }

    /**
     * 设置帖子列表
     * 
     * @param postList
     *            帖子列表
     */
    public void setPostList(List<Post> postList) {
        this.postList = postList;
    }

    /**
     * 获得贴吧名
     * 
     * @return 贴吧名
     */
    public String getTiebaName() {
        return tiebaName;
    }

    /**
     * 设置贴吧名
     * 
     * @param tiebaName
     *            贴吧名
     */
    public void setTiebaName(String tiebaName) {
        this.tiebaName = tiebaName;
    }
}